iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
Mobile Development

Android開發系列 第 3

[Day3]Dialog的基本運用1

  • 分享至 

  • xImage
  •  

大家好,想必大家在使用手機的應用程式時常常會冒出對話框來詢問是否要打開相機權限、打開資料夾存取權限等等一些簡單的詢問動作,今天我們就來實作出基本的對話框。

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnBaseDialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="基本的Dialog"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
        
</androidx.constraintlayout.widget.ConstraintLayout>      

MainActivity:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button mShowBaseDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }
    
    private void init() {
        mShowBaseDialog         =findViewById(R.id.btnBaseDialog);
        mShowBaseDialog.setOnClickListener(this);
    }
    
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btnBaseDialog:
                showBaseDialog();
                break;
        }
    }
    
    public void showBaseDialog(){
       AlertDialog.Builder builder = new AlertDialog.Builder(this);
       builder.setTitle("Dialog的標題")
               .setMessage("Dialog的內容")
               .setPositiveButton("確定", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int which) {
                      //點選確定後做的事情可寫在這
                   }
               })
               .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int which) {
                       //點選取消後做的事情可寫在這
                   }
               })
               .create()
               .show();
    }
}

Dialog在程式碼裡用code來建立

  • .setTitle
    是用來設定Dialog的Title
  • .setMessage
    是用來設定Dialog的內容
  • .setPositiveButton
    是用來設定按鈕,通常我們是設定確定的按鈕,我們可以在onClick裡面設定當我們點選按鈕後會
    做的事情。
  • .setNegativeButton
    通常是設定取消的按鈕
  • .create
    上面的屬性設定完用.create來創建dialog
  • .show
    最後用.show來呈現出dialog

完成後會出現下面的圖片:


接下來我們來示範警告訊息的Dialog
在activity_main.xml加入一個Button:

<Button
        android:id="@+id/btnCaveatMessageDialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="警告訊息"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnBaseDialog" />

MainActivity:

private Button mShowDialogCaveatMessage;

MainActivity -> init:

mShowDialogCaveatMessage=findViewById(R.id.btnCaveatMessageDialog);
mShowDialogCaveatMessage.setOnClickListener(this);

MainActivity -> onClick:

 case R.id.btnCaveatMessageDialog:
                showDialogCaveatMessage();
                break;

新增一個showDialogCaveatMessage():

public void showDialogCaveatMessage() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("警告訊息")
                .setMessage("Error")
                .setPositiveButton(android.R.string.yes, null)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();
    }

在上面的程式碼裡和前一個基本的Dialog差不多,多了一個.setIcon是用來設定對話框標題旁邊的圖案,當設定完畢後會出現和下面差不多的對話框

今天的示範就到這了,明天我會繼續示範其他Dialog相關的程式碼。
/images/emoticon/emoticon08.gif


上一篇
[Day2]簡易的BMI
下一篇
[Day4] Dialog的基本運用2
系列文
Android開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言